/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package acceso_datos;

import datos.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Pablo
 */
public class RegistroincidenteDB {
    public boolean grabar(RegistroIncidente regInc) throws SQLException {
        OperacionesBase db = new OperacionesBase();        
              
        String query = "insert into registro_incidente values("
                + "" + regInc.getClave()
                + ",'" + regInc.getObservacion()
                + "'," + regInc.getTipoIncidente().getId()
                + ",'" + regInc.getCoordinador().getCedula()
                +"',"+regInc.getEmergencie().getId()                
                +")";
        Boolean resultado = db.ingreso(query);
        db.cerrarConexion();
        return resultado;               
    }
    
    
    public RegistroIncidente buscar(String id) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="select * from registro_incidente where id_registro_incidente =" + id + "";
        ResultSet resultado = db.seleccion(query);
        RegistroIncidente registroIncidente=null;
        
        if (resultado!=null) {
            
            resultado.next();
            registroIncidente=new RegistroIncidente();
            
            registroIncidente.setClave(resultado.getInt(1));
            registroIncidente.setObservacion(resultado.getString(2));
            
            int idTipoInc=resultado.getInt(3);
            String cedulaCoord=resultado.getString(4);
            int idEmergencia=resultado.getInt(5);
                        
            TipoIncidenteDB tidb=new TipoIncidenteDB();
            TipoIncidente ti=tidb.buscar(idTipoInc+"");
            registroIncidente.setTipoIncidente(ti);
            
            CoordinadorDB cdb=new CoordinadorDB();
            Coordinador c=cdb.buscar(cedulaCoord);
            registroIncidente.setCoordinador(c);
            
            EmergenciaDB edb=new EmergenciaDB();
            Emergencie ei=edb.buscar(idEmergencia+"");
            registroIncidente.setEmergencie(ei);                        
            
        }
        db.cerrarConexion();
        return registroIncidente;
    }
    public HashMap<Integer, RegistroIncidente> listar() throws SQLException {
       OperacionesBase db = new OperacionesBase();
        String query="select * from registro_incidente ";
        ResultSet resultado = db.seleccion(query);
        RegistroIncidente registroIncidente=null;
        HashMap<Integer, RegistroIncidente> todos=new HashMap<Integer, RegistroIncidente>();
        while (resultado.next()) {            
            
            resultado.next();
            registroIncidente=new RegistroIncidente();
            
            registroIncidente.setClave(resultado.getInt(1));
            registroIncidente.setObservacion(resultado.getString(2));
            
            int idTipoInc=resultado.getInt(3);
            String cedulaCoord=resultado.getString(4);
            int idEmergencia=resultado.getInt(5);
                        
            TipoIncidenteDB tidb=new TipoIncidenteDB();
            TipoIncidente ti=tidb.buscar(idTipoInc+"");
            registroIncidente.setTipoIncidente(ti);
            
            CoordinadorDB cdb=new CoordinadorDB();
            Coordinador c=cdb.buscar(cedulaCoord);
            registroIncidente.setCoordinador(c);
            
            EmergenciaDB edb=new EmergenciaDB();
            Emergencie ei=edb.buscar(idEmergencia+"");
            registroIncidente.setEmergencie(ei);     
            
            todos.put(registroIncidente.getClave(),registroIncidente);
        }
        db.cerrarConexion();
        return todos;
    }
    
  public int indiceFinal(){
        int max = -1;
        try {
            OperacionesBase db = new OperacionesBase();
            String query = "select max(id_registro_incidente) from registro_incidente ";
            ResultSet resultado = db.seleccion(query);
            
            while (resultado.next()) {

                max = resultado.getInt(1);
            }
            db.cerrarConexion();
            
        } catch (SQLException ex) {
            Logger.getLogger(RegistroincidenteDB.class.getName()).log(Level.SEVERE, null, ex);
        }
        return max;
    }
}
